package com.shell.qq;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.ActionMode;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.shell.qq.sql.DBHelper;
import com.shell.qq.sql.DBUtil;

import java.io.FileInputStream;
import java.io.IOException;

//主页面（登陆界面）
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button login, register; //登陆，注册按钮
    private EditText username, password;//用户名，密码框
    UserInfo userInfo = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        userInfo = new UserInfo(new User());
        userInfo.getUserXMLDate(this); //读取XML文件
        username.setText(userInfo.getUser().getUsername());//填充用户名
        password.setText(userInfo.getUser().getPassword());//填充密码
        Log.i("tag", "onCreate()");
    }


    public void initView() {
        login = findViewById(R.id.btn_login);//登陆按钮id
        register = findViewById(R.id.btn_reg);//注册按钮id
        username = findViewById(R.id.username);//用户名输入框id
        password = findViewById(R.id.password);//密码输入框id


        login.setOnClickListener(this);//绑定监听器到当前类。
        register.setOnClickListener(this);

//        //匿名类作为监听器
//        login.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_LONG).show();
//            }
//        });
//        //匿名类作为监听器
//        register.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                Toast.makeText(MainActivity.this,"注册成功",Toast.LENGTH_LONG).show();
//            }
//        });

    }

    @Override
    public void onClick(View v) {
        String name = username.getText().toString().trim(); //获取用户名
        String pwd = password.getText().toString().trim(); //获取密码
        if (v.getId() == R.id.btn_login) {//if点击登录按钮
//            try {
//                userInfo=new UserInfo(new User());
//                userInfo.getUserDataWithFile(this); //读取文本文件
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
            User user = selectSQLite(name);//根据用户名查询数据库，返回一个user对象
            if (name.equals(user.getUsername()) && pwd.equals(user.getPassword())) {
//            if (name.equals(userInfo.getUser().getUsername()) && pwd.equals(userInfo.getUser().getPassword())) {
//                Toast.makeText(MainActivity.this, "登录成功！", Toast.LENGTH_LONG).show();
                Intent intent = new Intent(this, UserActivity.class);//第一个参数是当前页面，第二个参数是目的页面
                Bundle bundle=new Bundle();
                bundle.putString("username",user.getUsername());
                bundle.putString("password",user.getPassword());
                bundle.putString("phone",user.getPhone());
                bundle.putString("Email",user.getEmail());
                intent.putExtra("user",bundle);//把查询出来的信息展示到下一个页面
                //把当前登陆的用户信息保存在XML文件中，便于程序启动时就加载
                UserInfo userInfo=new UserInfo(user);
                userInfo.saveUserXMLDate(this);
                startActivity(intent);
//                finish();//销毁当前activity。此句代码执行之前，跳转之后当前activity会处于停止状态。
            } else {
                Toast.makeText(MainActivity.this, "用户名或密码错误！", Toast.LENGTH_LONG).show();
            }
        } else if (v.getId() == R.id.btn_reg) {//点击注册按钮
//            if (name.equals("")) {
//                Toast.makeText(MainActivity.this, "用户名不能为空！", Toast.LENGTH_LONG).show();
//            } else if (pwd.equals("")) {
//                Toast.makeText(MainActivity.this, "密码不能为空！", Toast.LENGTH_LONG).show();
//            } else {
//                Toast.makeText(MainActivity.this, "注册成功", Toast.LENGTH_LONG).show();


            Intent intent = new Intent(this, RegActivity.class);//第一个参数是当前页面，第二个参数是目的页面
            intent.putExtra("username", name);//把当前页面的用户名和密码提交过去
            intent.putExtra("password", pwd);
//          startActivity(intent);//此方法不能返回上一页面
            startActivityForResult(intent, 0); //当下一页面finish时就会返回这一个页面


//            }
        }
    }

    //以下是数据回传
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 0) {
            if (resultCode == 1 && data != null) {
                username.setText(data.getStringExtra("username"));
                password.setText(data.getStringExtra("password"));
            }
        }
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.i("tag", "onRestart()");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.i("tag", "onPause()");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.i("tag", "onStop");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.i("tag", "onStart()");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.i("tag", "onDestroy()");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.i("tag", "onResume()");
    }

    //根据用户名查询数据库
    public User selectSQLite(String name) {
        User user = new User();
        DBHelper dbHelper=new DBHelper(this);
        SQLiteDatabase db;
        db = dbHelper.getWritableDatabase();//获取数据库对象，相当于连接数据库
        //表名，字段名，条件，数组依次填充?，分组方式，接收having条件，排序方式
        Cursor cursor = db.query(DBUtil.TABLE_NAME, null, "username=?", new String[]{name}, null, null, null);
        if (cursor.getCount() <= 0) {
            Toast.makeText(MainActivity.this, "用户名或者密码错误！", Toast.LENGTH_LONG).show();
        } else {
            while (cursor.moveToNext()) {
                String username = cursor.getString(0);
                String password = cursor.getString(1);
                String phone = cursor.getString(2);
                String Email = cursor.getString(3);
                user.setUsername(username);
                user.setPassword(password);
                user.setPhone(phone);
                user.setEmail(Email);
            }
        }
        db.close();
        return user;
    }
}